문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 스파게티 코드 (문단 편집) === [[마인크래프트 자바 에디션]] === 소수 인원이 개발하는 인디 게임은 보통 게임 개발 초심자들이 많고 코드를 다듬을 인원이 부족하다 보니 코드가 스파게티인 경우가 많은데, 마인크래프트 개발 초기의 모장도 예외가 아니었다 보니 마인크래프트 자바 에디션은 스파게티 코드로 악명이 높다. 특히 개발자였던 [[마르쿠스 페르손]](노치)의 프로그래밍 역량이 떨어지다 보니 그냥 어떻게든 돌아가기만 하면 된다는 마인드로 주석 처리도 부실하게 이리저리 꼬인 구조였다고 한다. 그 예시로 몹의 인공지능은 버그로 인해 무한 루프가 자주 일어났는데, [[마르쿠스 페르손|노치]]는 원인을 찾아 해결하는 대신 그냥 루프한 횟수를 세서 일정 수가 넘어가면 그냥 인공지능을 멈춰버렸다. 그래서 몹들이 가끔 아무 이유 없이 멈춰서곤 했다. 또한 유저들이 벽에 붙인 횃불은 빛이 나는데 왜 손에 들린 횃불에서는 빛이 나지 않는지에 대해 묻자 노치는 구현이 불가능하다는 입장을 보였으나, 머지않아 모드 팀들이 [[옵티파인|손에 들린 채로 빛나는 횃불을 구현하면서]] 노치의 역량 문제라는 것을 까발려버렸다. 이 때문에 버전업을 할 때마다 코드를 대폭 갈아치워서 이전 버전의 모드는 대부분 호환이 되지 않았고, 대규모 업데이트인 1.16 버전 업데이트에 대비하기 위해 1.15 버전의 컨텐츠 일부를 희생해야 했다. 지금도 옵티파인 또는 각종 최적화 모드팩들을 적용하면 프레임이 몇 배는 오를 정도로, Java 언어 자체의 한계를 감안해도 기본적인 최적화 상태가 좋지 않다. 버전이 올라갈수록 개선되고는 있지만, 마인크래프트에 투입되는 인력이 많지 않아 새 버전 컨텐츠 구현과 심도 있는 최적화를 병행하긴 버거운 모양. 그래서 [[마이크로소프트]]가 모장을 인수하고 C++로 다시 개발한 [[베드락 에디션]]은 아예 소스 코드를 완전히 갈아엎어 [[리버스 엔지니어링]]에 가깝게 새로 만드는 수준의 최적화를 진행했는데, 나온 결과물은 자바 에디션과 비교를 거부하는 최적화를 보여준다. 상술한 유일한 해결법인 '처음부터 다시 만들기'를 실제로 사용한 사례. 베드락 에디션의 전신인 포켓 에디션은 당시 너무 무거웠던 자바 에디션의 모든 기능을 이식받을 수 없었지만, 인수 이후 최적화를 거친 베드락 에디션은 자바 에디션의 모든 기능을 크로스 플랫폼으로 구현 가능할 정도로 최적화되어 양 플랫폼을 통합할 수 있게 되었다. 심지어는 그러고도 자바 에디션보다 더욱 빠르다. 이 과정에서 그나마 다행인 건 마인크래프트의 구현 난이도가 중견 프로그래머라면 어느정도 시간을 들여서 비슷하게 만들 수 있을 정도로 쉬웠기 때문에 마이크로소프트가 단기간 내에 재설계를 진행할 수 있었다는 점이다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기